import { Module, MiddlewareConsumer, NestModule } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigModule } from '@wwjConfig/config.module';
import { CommonModule } from '@wwjCommon/common.module';
import { VendorModule } from '@wwjVendor/vendor.module';
import { CoreModule } from '@wwjCore/core.module';

/**
 * 应用根模块
 * 基于 NestJS 官方示例实现
 * 参考: https://docs.nestjs.cn/fundamentals/module-ref
 *
 * 模块结构：
 * - ConfigModule: 配置中心（静态+动态配置）
 * - CommonModule: 基础设施层
 * - VendorModule: 第三方服务集成层
 * - CoreModule: 核心业务模块层
 */
@Module({
  imports: [ConfigModule, CommonModule, VendorModule, CoreModule],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    // 这里可以配置全局中间件
    // 例如：日志中间件、CORS 中间件等
    // consumer
    //   .apply(LoggerMiddleware)
    //   .forRoutes('*');
  }
}
